#include "pch.hpp"
#include "Device.hpp"

/*#include "D3D9Device.hpp"*/
#include "D3D11Device.hpp"

#include <engine.core/File.hpp>




Engine::Video::Device::Device()
{}
///////////////////////////////////////////////////////////////////////////////////////////////////

Engine::Video::Device::~Device()
{}
///////////////////////////////////////////////////////////////////////////////////////////////////




QString Engine::Video::Device::name() const
{
	return "VideoDevice";
}
///////////////////////////////////////////////////////////////////////////////////////////////////




VideoAdapters Engine::Video::Device::queryAdapters(VideoType videoSystem)
{
	switch(videoSystem)
	{
	case D3D11: return D3D11Device::queryAdapters();
	default:
		BOOSTEXT_THROW(boostext::invalid_value_exception(videoSystem));
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////////




Engine::Video::Texture::ptr Engine::Video::Device::createTexture(const QString& fname)
{
	return createTexture(File::readAll(fname));
}
///////////////////////////////////////////////////////////////////////////////////////////////////




Engine::Video::Device::ptr Engine::Video::Device::create(const EngineInfo& info)
{
	switch(info.videoDevice)
	{
	case D3D11: return boost::make_shared<D3D11Device>(info);
	default: BOOSTEXT_THROW(invalid_value_exception(info.videoDevice));
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
